"SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 String 对象。"

来源:百度知道 编辑:UC知道 时间:2024/06/27 14:40:05
bool result = false;
try
{
sqlcon.Open();
SqlCommand cmd = new SqlCommand("Userlogin", sqlcon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@username",SqlDbType.VarChar,50).Value=user.UserName);
cmd.Parameters.Add(new SqlParameter("@password",SqlDbType.VarChar,50).Value=user.Password);
object o = cmd.ExecuteScalar();
if (o != null)
{
result = true;
}
else
{
result = false;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
sq

cmd.Parameters.Add(new SqlParameter("@username",SqlDbType.VarChar,50).Value=user.UserName);
cmd.Parameters.Add(new SqlParameter("@password",SqlDbType.VarChar,50).Value=user.Password);
这两句写混了,一般分开来写:
cmd.SqlParameter.Add("@username",SqlDbType.VarChar,50);
cmd.SqlParameter.Add("@password",SqlDbType.VarChar,50);
cmd.Parameters["@username"].Value=user.UserName;
cmd.Parameters["@password"].Value=user.Password;

另外,还要注意的是:
Userlogin这个存储过程的参数是不是@username,@password
user.UserName以及user.Password是不是为null。
你最好在user类中在定义username和password时,就给一个初始值
class user
{
public string username="";
public string password="";
}

cmd.Parameters.Add("@username",SqlDbType.VarChar);
cmd.Parameters[("@username"].Value=user.UserName;
cmd.Parameters.Add("@password",SqlDbType.VarChar);
cmd.Parameters[(&quo